<?php
//数据库连接
function  conn()
{
	$link = @mysqli_connect(HOST, USER, PASS, DB_NAME) or exit('数据库连接失败');
	if(!mysqli_select_db($link, DB_NAME)){
		exit('数据库选择失败');
	}
	mysqli_set_charset($link, DB_CHARSET);	
	return $link;
}
/**
*功能：文件上传
*参数：
*@param string $bname 上传表单项名称
*@param array $allowtype 上传允许类型
*@param int $allowsize 上传允许大小
*@param string $updir 上传目录
*返回值：
*@return string $newname 上传文件名称
*/
function upload($bname, $updir = './uploads/', $allowtype = array('image/jpeg','image/png','image/gif'), $allowsize = 1048576)
{
	$file = $_FILES[$bname];

	//错误号
	if($file['error'] > 0){
		switch($file['error']){
			case 1:
				$info = '超过php.ini中upload_max_filesize的大小';
				break;
			case 2:
				$info = '超过表单MAX_FILE_SIZE的大小';
				break;
			case 3:
				$info = '文件部分被上传';
				break;
			case 4:
				$info = '没有找到临时目录';
				break;
			case 7:
				$info = '没有权限';
				break;
		}
		return $info;
	}


	//类型
	if(!in_array($file['type'], $allowtype)){
		$info = '上传类型不符合，请上传jpg|png|gif';
		return $info;
	}


	//大小 字节
	if($file['size'] > $allowsize){
		return '大小不符合，请上传1M以内';
	}


	//随机文件名  目录+文件名+扩展名
	//如果目录不存在则创建
	if(!file_exists($updir)){
		mkdir($updir,0777,true);
	}

	//唯一性
	do{
		//随机文件名
		$filename = time().rand(1000,9999);
		//获取扩展名
		$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
		//拼接路径
		$path = rtrim($updir, '/').'/'.$filename.'.'.$ext;
	}while(file_exists($path));


	if(is_uploaded_file($file['tmp_name'])){
		if(move_uploaded_file($file['tmp_name'], $path)){
			$newname = $filename.'.'.$ext;
			return $newname;
		}else{
			return '上传失败';
		}
	}else{
		return '不是通过HTTP POST上传的';
	}
}

/**
*功能：缩放
*参数：
*@param string $spath 缩放路径
*@param int $sw 缩放宽
*@param int $sh 缩放高
*@param string $pre 缩放文件名前缀
*返回值：
*@return string 带前缀的原文件名称
*/
// ../../uploads/235435.jpg   ../../uploads/s_235435.jpg
function suofang($spath, $sw = 100, $sh = 100, $pre = 's_')
{
	//1.创建画布
	//计算比例  100 100  要缩放的图像的宽高  1920 1200  //用小的比例
	$srcinfo = getimagesize($spath);
	//根据图片类型 去创建图像资源 ...
	$src = imagecreatefromjpeg($spath); //strrchr  aaaa.jpg
	
	if($sw/$srcinfo[0] > $sh/$srcinfo[1]){
		$bili = $sh/$srcinfo[1];
	}else{
		$bili = $sw/$srcinfo[0];
	}
	//舍去法取整
	$sw = floor($srcinfo[0] * $bili);
	$sh = floor($srcinfo[1] * $bili);


	$dst = imagecreatetruecolor($sw,$sh);

	//3.开始绘画
	imagecopyresampled($dst, $src, 0, 0, 0, 0, $sw, $sh, $srcinfo[0], $srcinfo[1]);

	//5.将图像保存为文件
	//随机文件名  //获取文件后缀名  目录
	//$ext = strrchr($spath,'.');
	//$filename = time().rand(1000,9999).$ext;
	$filename = rtrim(dirname($spath),'/').'/'.$pre.basename($spath);
	
	imagejpeg($dst, $filename);

	//6.销毁资源
	imagedestroy($dst);
	imagedestroy($src);
	
	//返回原文件名加前缀
	return $pre.basename($spath);
}
